﻿////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// <copyright>Copyright 2008-2011 Andreas Huber Doenni</copyright>
// Distributed under the Microsoft Public License (Ms-PL).
// See accompanying file License.txt or copy at http://mews.codeplex.com/license.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

namespace Mews.Mime
{
    using System.Diagnostics.CodeAnalysis;

    /// <summary>Provides constants for the names of the header fields used in a
    /// <a href="http://www.ietf.org/rfc/rfc5322.txt">RFC 5322</a> message, with MIME extensions.</summary>
    /// <threadsafety static="true" instance="false"/>
    public static class HeaderFieldNames
    {
        /// <summary>Provides the name of the Date field (see <a href="http://www.ietf.org/rfc/rfc5322.txt">RFC
        /// 5322</a> 3.6.1.).</summary>
        public const string Date = "Date";

        /// <summary>Provides the name of the From field (see <a href="http://www.ietf.org/rfc/rfc5322.txt">RFC
        /// 5322</a> 3.6.2.).</summary>
        public const string From = "From";

        /// <summary>Provides the name of the Sender field (see <a href="http://www.ietf.org/rfc/rfc5322.txt">RFC
        /// 5322</a> 3.6.2.).</summary>
        public const string Sender = "Sender";

        /// <summary>Provides the name of the Reply-To field (see <a href="http://www.ietf.org/rfc/rfc5322.txt">RFC
        /// 5322</a> 3.6.2.).</summary>
        public const string ReplyTo = "Reply-To";

        /// <summary>Provides the name of the To field (see <a href="http://www.ietf.org/rfc/rfc5322.txt">RFC
        /// 5322</a> 3.6.3.).</summary>
        public const string To = "To";

        /// <summary>Provides the name of the Cc field (see <a href="http://www.ietf.org/rfc/rfc5322.txt">RFC
        /// 5322</a> 3.6.3.).</summary>
        [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Cc", Justification = "Cc is the official casing in RFC 5322.")]
        public const string Cc = "Cc";

        /// <summary>Provides the name of the Bcc field (see <a href="http://www.ietf.org/rfc/rfc5322.txt">RFC
        /// 5322</a> 3.6.3.).</summary>
        public const string Bcc = "Bcc";

        /// <summary>Provides the name of the Message-ID field (see <a href="http://www.ietf.org/rfc/rfc5322.txt">RFC
        /// 5322</a> 3.6.4.).</summary>
        public const string MessageId = "Message-ID";

        /// <summary>Provides the name of the In-Reply-To field (see <a href="http://www.ietf.org/rfc/rfc5322.txt">RFC
        /// 5322</a> 3.6.4.).</summary>
        public const string InReplyTo = "In-Reply-To";

        /// <summary>Provides the name of the References field (see <a href="http://www.ietf.org/rfc/rfc5322.txt">RFC
        /// 5322</a> 3.6.4.).</summary>
        public const string References = "References";

        /// <summary>Provides the name of the Subject field (see <a href="http://www.ietf.org/rfc/rfc5322.txt">RFC
        /// 5322</a> 3.6.5.).</summary>
        public const string Subject = "Subject";

        /// <summary>Provides the name of the Comments field (see <a href="http://www.ietf.org/rfc/rfc5322.txt">RFC
        /// 5322</a> 3.6.5.).</summary>
        public const string Comments = "Comments";

        /// <summary>Provides the name of the Keywords field (see <a href="http://www.ietf.org/rfc/rfc5322.txt">RFC
        /// 5322</a> 3.6.5.).</summary>
        public const string Keywords = "Keywords";

        /// <summary>Provides the name of the Content-Type header field (see
        /// <a href="http://www.ietf.org/rfc/rfc2045.txt">RFC 2045</a> 5.).</summary>
        public const string ContentType = "Content-Type";

        /// <summary>Provides the name of the Content-Transfer-Encoding header field (see
        /// <a href="http://www.ietf.org/rfc/rfc2045.txt">RFC 2045</a> 6.).</summary>
        public const string ContentTransferEncoding = "Content-Transfer-Encoding";

        /// <summary>Provides the name of the Content-Disposition header field (see
        /// <a href="http://www.ietf.org/rfc/rfc2183.txt">RFC 2183</a>, 2.).</summary>
        public const string ContentDisposition = "Content-Disposition";
    }
}
